package dominio.DAO;

import java.util.ArrayList;
import java.util.List;

import dominio.Agencia;

public class AgenciaDAO {
    private BaseDatosMock bdMock;

    public void setBaseDatosMock(BaseDatosMock bdMock) {
        this.bdMock = bdMock;
    }

    public void crearAgencia(Agencia agencia) {
        bdMock.devolverAgencias().add(agencia);
    }
    
	public void modificarAgencia(String codigo, String nombreAgencia, String identificacion, String telefono, String correo, 
			String direccion, String ciudad, String estado, String pais, String nombreContacto){
	
		Agencia agencia = obtenerAgenciaPorCodigo(codigo);
		agencia.setNombreAgencia(nombreAgencia);
		agencia.setIdentificacion(identificacion);
		agencia.setTelefono(telefono);
		agencia.setCorreo(correo);
		agencia.setDireccion(direccion);
		agencia.setCiudad(ciudad);
		agencia.setEstado(estado);
		agencia.setPais(pais);
		agencia.setNombreContacto(nombreContacto);
	}
    
	public ArrayList<Agencia> devolverListaBusquedaAgenciasPorNombre(String nombre){
        
		ArrayList<Agencia> resultadoBusquedaAgencias = new ArrayList<Agencia>();
		for(int i = 0; i < devolverCantidadAgencias(); i++){            
			Agencia a = devolverAgencias().get(i);          
            if(a.getNombreAgencia().indexOf(nombre) > -1){
            	resultadoBusquedaAgencias.add(a);
            }
        }		
		return resultadoBusquedaAgencias;
    }
    
	public void eliminarAgencia(String codigo){
        for(int i = 0; i < devolverCantidadAgencias(); i++){            
        	Agencia a = devolverAgencias().get(i);          
            if(a.getCodigo().equals(codigo)){
                devolverAgencias().remove(i);
            }
        }
	}

	public Agencia obtenerAgenciaPorCodigo(String codigo){
		Agencia agencia = null;
		for(int i = 0; i < devolverCantidadAgencias(); i++){    
			Agencia a = devolverAgencias().get(i);            
            if(a.getCodigo().equals(codigo)){
            	agencia = a;
                break;
            }
		}
		return agencia;
	}
	
	public int devolverCantidadAgencias(){
        return devolverAgencias().size();
    }
    
    public List<Agencia> devolverAgencias() {
        return bdMock.devolverAgencias();
    }
    
    public void limpiaListaAgencia() {
        bdMock.devolverAgencias().clear();
    }
}